package com.br.android.widing.db;

import com.br.android.widing.entity.Ganho;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class WidingGanhosDAO extends WidingDataBase {

	public WidingGanhosDAO(Context context) {
		super(context);
	}
	
	public WidingGanhoCursor getAll(){
		SQLiteDatabase dataBase = getReadableDatabase();
		WidingGanhoCursor c = (WidingGanhoCursor) 
				dataBase.rawQueryWithFactory(new WidingGanhoCursor.Factory(), WidingGanhoCursor.QUERY, null, null);
		c.moveToFirst();
		return c;
	}
	
	public WidingGanhoCursor getTotalValores(){
		SQLiteDatabase dataBase = getReadableDatabase();
		WidingGanhoCursor c = (WidingGanhoCursor) 
				dataBase.rawQueryWithFactory(new WidingGanhoCursor.Factory(), WidingGanhoCursor.QUERY_SOMA_VALORES, null, null);
		c.moveToFirst();
		return c;
	}
	
	public WidingGanhoCursor getTotalValoresPorCategoria(){
		SQLiteDatabase dataBase = getReadableDatabase();
		WidingGanhoCursor c = (WidingGanhoCursor) 
				dataBase.rawQueryWithFactory(new WidingGanhoCursor.Factory(), 
						WidingGanhoCursor.QUERY_SOMA_VALORES_POR_CATEGORIA, null, null);
		c.moveToFirst();
		return c;
	}
	
	public void inserirGanho(Ganho ganho){
		String sql = "INSERT INTO ganho(nomeganho, valorganho, dataganho, categoriaganho) VALUES(?,?,?,?)";
		Object[] obj = new Object[]{ganho.getNomeGanho(), ganho.getValorGanho(), ganho.getDataGanho(), ganho.getCategoriaGanho()};
		try {
			getWritableDatabase().execSQL(sql, obj);
		} catch (Exception e) {
			Log.e("ERRO AO INSERIR UM NOVO GANHO", e.getMessage());
		}
	}
	
	public void alterarGanho(Ganho ganho){
		String sql = "UPDATE ganho SET nomeganho = ?, valorganho = ?, dataganho = ?, categoriaganho = ? WHERE idganho = ?"; 
		Object obj[] = new Object[]{ganho.getNomeGanho(), ganho.getValorGanho(), ganho.getDataGanho(), ganho.getCategoriaGanho(), ganho.getIdGanho()};
		try {
			getWritableDatabase().execSQL(sql, obj);
		} catch (Exception e) {
			Log.e("ERRO AO ALTERAR GANHO", e.getMessage());
		}
	}
	
	public void excluirGasto(int id){
		String sql = "DELETE FROM ganho WHERE idganho = ?";
		Object obj[] = new Object[]{id};
		try {
			getWritableDatabase().execSQL(sql, obj);
		} catch (Exception e) {
			Log.e("ERRO AO EXCLUIR GANHO", e.getMessage());
		}
	}

}
